package com.higgins.lawapp.client.application.rpc;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.higgins.lawapp.client.application.dataModel.LawFirm;

public interface LawFirmServiceAsync {
	void retrieveRegions(AsyncCallback<List<String>> callback) throws IllegalArgumentException;
	void retrieveAreasOfLaw(String region, AsyncCallback<List<String>> callback) throws IllegalArgumentException;
	void retrieveLawFirms(String region, String areaOfLaw, AsyncCallback<List<String>> callback) throws IllegalArgumentException;
	void retrieveLawFirmDetails(String region, String areaOfLaw, String lawFirm, AsyncCallback<List<String>> callback) throws IllegalArgumentException;
	void retrieveLawFirmDetails(String region, String areaOfLaw, AsyncCallback<List<LawFirm>> callback) throws IllegalArgumentException;
	void publish(String coveringLetter, AsyncCallback<String> callback) throws IllegalArgumentException;
	void retrieveCoveringLetters(AsyncCallback<List<String>> callback) throws IllegalArgumentException;
	void updateLawFirmPublished(Long id, String coveringLetter, Boolean published, AsyncCallback<Boolean> callback) throws IllegalArgumentException;
}
